<?php

/**
 * Tesis form.
 *
 * @package    sistema_estadisticas
 * @subpackage form
 * @author     Your name here
 * @version    SVN: $Id: sfDoctrineFormTemplate.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class TesisForm extends BaseTesisForm
{

	public function configure()
	{
		$this->widgetSchema['f_def_privada'] = new WidgetFormDatePick();
		$this->widgetSchema['f_def_privada']->setLabel('Fecha de defensa privada');
		$this->widgetSchema['f_def_publica'] = new WidgetFormDatePick();
		$this->widgetSchema['f_def_publica']->setLabel('Fecha de defensa pública');
		$this->widgetSchema['f_aprobacion'] = new WidgetFormDatePick();
		$this->widgetSchema['f_aprobacion']->setLabel('Fecha de aprobación');
		$this->widgetSchema['estado'] = new sfWidgetFormInputHidden();
		$this->widgetSchema['director_id'] = new WidgetFormAutocomplete(
			array(
				'model' => 'Docente',
				'action' => 'docente/buscar'
			)
		);

		$this->widgetSchema['pertinencia_id'] = new sfWidgetFormInputHidden();

		if (!$this->isNew)
			$this->widgetSchema['director_id']->setOption('values', array($this->getObject()->getDocente()));
	}
	
	protected function doSave($con = null)
	{
		if (null === $con)
		{
			$con = $this->getConnection();
		}

		$this->updateObject();

		if ($this->getObject()->isNew())
		{
			$this->getObject()->setEstado(Constantes::ACTIVO);
		}
		else
		{
			$pertinenciaForm = $this->getEmbeddedForm('pertinencia');
			//unset($pertinenciaForm[self::$CSRFFieldName]);
			//$pertinenciaForm->bind($this->getValue('pertinencia'), array());
			$pertinenciaForm->saveEstudianteList($con, $this->values['pertinencia']['estudiante_list']);
			$pertinenciaForm->object->save($con);

			/*$pertinencia = $this->getObject()->getPertinencia();
			$pertinencia->mergeEstudianteList($this->values['pertinencia']['estudiante_list']);
			//die('save');
			$pertinencia->save($con);*/
			
			
			/*$pertinencia = $this->getObject()->getPertinencia();
			$pertinenciaForm = new PertinenciaForm($pertinencia);
			$pertinenciaForm->saveEstudianteList($con);
			$pertinencia->save($con);*/
		}

		$this->getObject()->save($con);
	}

	public function embedPertinenciaForm()
	{
		$pertinencia = $this->getObject()->getPertinencia();
		$form = new PertinenciaForm($pertinencia);
		$form->widgetSchema->offsetGet('estudiante_list')->setOption('values', $pertinencia->getEstudiante());
		$form->widgetSchema->offsetGet('docente_id')->setOption('values', array($pertinencia->getDocente()));
		unset($form['aprobado']);

		$formatter = new WidgetFormSchemaFormatterDiv($form->getWidgetSchema());
		$form->widgetSchema->addFormFormatter('div_formatter',$formatter);
		$form->widgetSchema->setFormFormatterName('div_formatter');

		$this->embedForm('pertinencia', $form);
		$this->widgetSchema->moveField('pertinencia', sfWidgetFormSchema::FIRST);
	}

}
